load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_test")

go_library(
    name = "go_default_library",
    srcs = [
        "cloners.go",
        "doc.go",
        "field_trie.go",
        "getters.go",
        "setters.go",
        "state_trie.go",
        "types.go",
    ],
    importpath = "github.com/prysmaticlabs/prysm/beacon-chain/state",
    visibility = [
        "//beacon-chain:__subpackages__",
        "//fuzz:__pkg__",
        "//proto/testing:__subpackages__",
        "//shared/aggregation:__subpackages__",
        "//shared/benchutil:__pkg__",
        "//shared/depositutil:__subpackages__",
        "//shared/testutil:__pkg__",
        "//slasher/rpc:__subpackages__",
        "//tools/benchmark-files-gen:__pkg__",
        "//tools/pcli:__pkg__",
    ],
    deps = [
        "//beacon-chain/core/state/stateutils:go_default_library",
        "//beacon-chain/state/stateutil:go_default_library",
        "//proto/beacon/p2p/v1:go_default_library",
        "//shared/bytesutil:go_default_library",
        "//shared/hashutil:go_default_library",
        "//shared/htrutils:go_default_library",
        "//shared/params:go_default_library",
        "//shared/sliceutil:go_default_library",
        "@com_github_gogo_protobuf//proto:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@io_opencensus_go//trace:go_default_library",
    ],
)

# gazelle:exclude types_bench_test.go
go_test(
    name = "go_default_test",
    srcs = [
        "field_trie_test.go",
        "getters_test.go",
        "helpers_test.go",
        "references_test.go",
        "state_trie_test.go",
        "types_test.go",
        "validator_map_test.go",
    ],
    embed = [":go_default_library"],
    deps = [
        "//beacon-chain/state/stateutil:go_default_library",
        "//proto/beacon/p2p/v1:go_default_library",
        "//shared/bytesutil:go_default_library",
        "//shared/interop:go_default_library",
        "//shared/params:go_default_library",
        "//shared/testutil:go_default_library",
        "//shared/testutil/assert:go_default_library",
        "//shared/testutil/require:go_default_library",
        "@com_github_gogo_protobuf//proto:go_default_library",
        "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_prysmaticlabs_go_ssz//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
    ],
)
